<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 vector-feature-night-mode-enabled skin-theme-clientpref-os vector-sticky-header-enabled" lang="fr" dir="ltr"><head>
<meta charset="UTF-8">
<title>Middleware</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://fr.wikipedia.org/wiki/Middleware"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Middleware rootpage-Middleware skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span lang="en">Middleware</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="fr" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="fr" dir="ltr"><p>
En <a href="Architecture_(informatique)" title="Architecture (informatique)">architecture informatique</a>, un <b><span class="lang-en" lang="en">middleware</span></b> (<a href="Anglicisme" title="Anglicisme">anglicisme</a>) ou <b>intergiciel</b> est un <a href="Logiciel" title="Logiciel">logiciel</a> tiers qui crée un réseau d'échange d'informations entre différentes <a href="Application_(informatique)" title="Application (informatique)">applications informatiques</a>. Le réseau est mis en œuvre par l'utilisation d'une même technique d'échange d'informations dans toutes les applications impliquées<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> à l'aide de <a href="Composant_logiciel" title="Composant logiciel">composants logiciels</a>.
</p><p>Les <a href="Composant_logiciel" title="Composant logiciel">composants logiciels</a> du middleware assurent la communication entre les applications quels que soient les ordinateurs impliqués et quelles que soient les caractéristiques matérielles et logicielles des <a href="R%C3%A9seau_informatique" title="Réseau informatique">réseaux informatiques</a>, des <a href="Protocole_r%C3%A9seau" title="Protocole réseau">protocoles réseau</a>, des <a href="Syst%C3%A8me_d'exploitation" title="Système d'exploitation">systèmes d'exploitation</a> impliqués.
</p><p>Les techniques les plus courantes d'échange d'informations sont l'échange de messages, l'appel de procédures à distance et la manipulation d'objets à distance.
</p><p>Les middlewares sont typiquement utilisés comme <i>ciment</i> pour relier des applications informatiques disparates des <a href="Syst%C3%A8me_d'information" title="Système d'information">systèmes d'information</a> des entreprises et des institutions.
</p>
<div class="mw-heading mw-heading2"><h2 id="Traduction">Traduction</h2></div>
<p>Le terme <i>middleware</i> vient de l'<a href="Anglais" title="Anglais">anglais</a> <i>middle</i> (du milieu) et <i>software</i> (logiciel). Diverses francisations ont été proposées :
</p>
<ul><li>La <a href="D%C3%A9l%C3%A9gation_g%C3%A9n%C3%A9rale_%C3%A0_la_langue_fran%C3%A7aise_et_aux_langues_de_France" title="Délégation générale à la langue française et aux langues de France">Délégation générale à la langue française et aux langues de France</a> préconise l'emploi de <i>logiciel médiateur</i> depuis <a href="1999" title="1999">1999</a>.</li>
<li>L'<a href="Office_qu%C3%A9b%C3%A9cois_de_la_langue_fran%C3%A7aise" title="Office québécois de la langue française">Office québécois de la langue française</a>, quant à lui, propose le terme <i>intergiciel</i>.</li>
<li>Les termes de <i>logiciel d’inter-médiation</i> et, par <a href="Abus_de_langage" title="Abus de langage">abus de langage</a>, de <i>bus logiciel</i> (voir aussi <a href="Bus_de_donn%C3%A9es" title="Bus de données">bus de données</a>) peuvent se rencontrer dans la littérature.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Techniques">Techniques</h2></div>
<p>L'échange de messages, l'appel de procédures et la manipulation d'objets tiers sont trois techniques prises en charge par le middleware, qui permettent à des applications informatiques d'interagir, de coopérer et de se transmettre des informations.
</p>
<div class="mw-heading mw-heading3"><h3 id="Échange_de_messages"><span id=".C3.89change_de_messages"></span>Échange de messages</h3></div>
<p>Dans un middleware orienté message (<i>message-oriented middleware</i> ou MoM), les applications informatiques communiquent par échange de messages d'une manière similaire au <a href="Courrier_%C3%A9lectronique" title="Courrier électronique">courrier électronique</a> : une application informatique émet un message qui est alors transmis à l'application destinataire par les composants logiciels du middleware pendant que l'application émettrice effectue d'autres traitements (<a href="Asynchronisme" title="Asynchronisme">asynchronisme</a>).
</p><p>Le contenu du message est formaté par l'émetteur selon une convention préétablie puis analysé automatiquement par l'application destinataire conformément à cette convention. Le <a href="Format_de_donn%C3%A9es" title="Format de données">format de données</a> <a href="Extensible_Markup_Language" title="Extensible Markup Language">XML</a> est souvent utilisé pour les messages<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>.
</p><p>Le message peut être transmis à une application choisie par l'expéditeur, une liste d'applications abonnées ou toutes les applications qui exploitent le middleware. Les messages sont triés par priorité et placés dans des <a href="File_(structure_de_donn%C3%A9es)" title="File (structure de données)">files d'attente</a> (<i>queue</i>) par les composants logiciels du middleware<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading4"><h4 id="Exemples_de_MoM">Exemples de MoM</h4></div>
<ul><li>AMQP (<a href="Advanced_Message_Queuing_Protocol" title="Advanced Message Queuing Protocol">Advanced Message Queuing Protocol</a>) est un protocole standard ouvert pour les MoM, dont dérive notamment récemment ØMQ (ou ZeroMQ).</li>
<li><a href="IBM_MQ" title="IBM MQ">WebSphere MQ</a>, de <a href="IBM" title="IBM">IBM</a>, est un composant logiciel pour middleware orienté message.</li>
<li><a href="Java_Message_Service" title="Java Message Service">JMS</a> est une <a href="Interface_de_programmation" title="Interface de programmation">interface de programmation</a> pour middleware orienté message, <a href="OW2_JORAM" title="OW2 JORAM">OW2 JORAM</a> étant un des logiciels qui mettent en œuvre cette interface.</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Appel_de_procédure_à_distance"><span id="Appel_de_proc.C3.A9dure_.C3.A0_distance"></span>Appel de procédure à distance</h3></div>
<p>Avec un middleware basé sur les appels de procédure à distance (<i>remote procedure call</i>), des <a href="Routine_(informatique)" title="Routine (informatique)">fonctions</a> (procédures) existantes dans une application informatique donnée peuvent être exécutées sur demande par d'autres applications.
</p><p>L'appel de procédure à l'intérieur d'une application est un mécanisme logiciel ordinaire qui peut être réalisé avec n'importe quel <a href="Langage_de_programmation" title="Langage de programmation">langage de programmation</a> <a href="Programmation_proc%C3%A9durale" title="Programmation procédurale">procédural</a>. Il en va autrement quand cet appel est réalisé entre deux applications.
</p><p>Dans le mécanisme d'appel de procédure à distance, les composants logiciels du middleware créent dans l'application appelante un composant logiciel souche (<i>stub</i>) dont les fonctions sont identiques à celles de l'application informatique appelée. Puis les appels de procédure effectués par l'application appelante sur la couche sont déviés par les composants logiciels du middleware vers l'application appelée dans laquelle les composants du middleware ont créé une autre souche semblable à l'appelant.
</p><p>Le résultat de l'exécution de la fonction est ensuite transmis de l'appelé vers l'appelant par les mêmes mécanismes. Les composants du middleware utilisent le procédé de <a href="S%C3%A9rialisation" title="Sérialisation">sérialisation</a> (<i>marshalling</i>)<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>.
</p><p>Le <a href="Protocole_r%C3%A9seau" title="Protocole réseau">protocole réseau</a> <a href="Appel_de_proc%C3%A9dure_%C3%A0_distance" title="Appel de procédure à distance">RPC</a> de <a href="Sun_Microsystems" title="Sun Microsystems">Sun Microsystems</a> sert à effectuer des appels à distance.
</p><p><a href="SOAP" title="SOAP">SOAP</a> est une technique d'appels à distance sur des <a href="Serveur_informatique" title="Serveur informatique">serveurs web</a> basée sur <a href="Extensible_Markup_Language" title="Extensible Markup Language">XML</a> et le protocole <a href="Hypertext_Transfer_Protocol" title="Hypertext Transfer Protocol">HTTP</a> - protocole des serveurs web.
</p><p>Technique intermédiaire entre les appels de procédure à distance et la manipulation d'objets, <a href="Remote_Method_Invocation" class="mw-redirect" title="Remote Method Invocation">RMI</a> est un <a href="Composant_logiciel" title="Composant logiciel">composant logiciel</a> pour effectuer des appels de procédure à distance sur des objets en langage de programmation <a href="Java_(langage)" title="Java (langage)">Java</a>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Manipulation_d'objets"><span id="Manipulation_d.27objets"></span>Manipulation d'objets</h3></div>
<p>Avec un middleware à objets, une application informatique donnée peut manipuler les <a href="Objet_(informatique)" title="Objet (informatique)">objets</a> — de <a href="Programmation_orient%C3%A9e_objet" title="Programmation orientée objet">programmation orientée objet</a> — d'une autre application. Ces manipulations induisent des traitements et des modifications d'informations dans l'application qui est propriétaire de l'objet en question.
</p><p>La manipulation d'objets par l'application à laquelle ils appartiennent est une opération ordinaire de <a href="Programmation_orient%C3%A9e_objet" title="Programmation orientée objet">programmation orientée objet</a>. Les mécanismes nécessaires existent dans la totalité des <a href="Programmation_orient%C3%A9e_objet" title="Programmation orientée objet">langages de programmation orientés objet</a>. Il en va autrement de la manipulation d'un objet appartenant à une autre application.
</p><p>Le mécanisme de manipulation d'objet tiers est similaire au mécanisme d'appel de procédure à distance : les composants du middleware créent dans l'application informatique qui exploite l'objet (client) une souche (<i>stub</i>) de celui-ci. Puis les manipulations effectuées sur la souche sont déviées par les composants du middleware vers l'application à laquelle appartient l'objet (fournisseur). Les composants du middleware créent dans l'application fournisseur un objet qui contient l'objet manipulé ainsi que les instructions nécessaires pour recevoir les manipulations - le squelette (<i>skeleton</i>). Le squelette est réalisé en utilisant les mécanismes d'<a href="H%C3%A9ritage_(informatique)" title="Héritage (informatique)">héritage</a> de la programmation orientée objet<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>.
</p><p><a href="Distributed_Component_Object_Model" title="Distributed Component Object Model">DCOM</a> de <a href="Microsoft" title="Microsoft">Microsoft</a> est une technique de manipulation d'objets distants basée sur le protocole réseau <a href="Appel_de_proc%C3%A9dure_%C3%A0_distance" title="Appel de procédure à distance">RPC</a>.
</p><p><a href="Distributed_Computing_Environment" title="Distributed Computing Environment">DCE</a> est un middleware à manipulation d'objet du <a href="Object_Management_Group" title="Object Management Group">Object Management Group</a> basé sur <a href="Common_Object_Request_Broker_Architecture" title="Common Object Request Broker Architecture">CORBA</a>, une technique standardisée du même auteur.
</p>
<div class="mw-heading mw-heading3"><h3 id="Transactions">Transactions</h3></div>
<p>En informatique, une <a href="Transaction_informatique" title="Transaction informatique">transaction</a> est une suite d'opérations indissociables - qui doivent être réalisées entièrement ou pas du tout. Divers composants de middleware permettent la réalisation de ces transactions. Ils permettent en particulier l'annulation totale de la transaction en cas d'échec<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>.
</p><p><a href="Customer_Information_Control_System" title="Customer Information Control System">CICS</a>, <a href="IMS" class="mw-disambig" title="IMS">IMS</a> et <a href="IBM_MQ" title="IBM MQ">MQ Series</a> <sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> (<a href="IBM" title="IBM">IBM</a>) et <a href="Distributed_Transaction_Coordinator" title="Distributed Transaction Coordinator">DTC</a> de <a href="Microsoft" title="Microsoft">Microsoft</a> sont des middleware qui permettent la réalisation de transactions.
</p>
<div class="mw-heading mw-heading2"><h2 id="Interopérabilité_entre_les_intergiciels_majeurs_:_CORBA,_RMI,_DCOM"><span id="Interop.C3.A9rabilit.C3.A9_entre_les_intergiciels_majeurs_:_CORBA.2C_RMI.2C_DCOM"></span>Interopérabilité entre les intergiciels majeurs : CORBA, RMI, DCOM</h2></div>
<p>L'<b>interopérabilité</b> entre logiciels est un concept informatique qui décrit la communication entre plusieurs applications indépendantes éditées sur des plateformes différentes et utilisées sur des ordinateurs différents.
</p><p>Cette <b>interopérabilité</b> se fait à travers des intergiciels (ou middlewares) qui permettent l'échange d'informations entre ces applications.
</p><p>Il y a de plus en plus de systèmes qui utilisent leur propre langage et qui sont différents sur de nombreux aspects. Par conséquent les intergiciels interviennent pour résoudre ce problème. CORBA, Oracle Java RMI et Microsoft COM/DCOM sont les applications les plus utilisées.
</p><p>Passer de la production de logiciel vers le milieu industriel (via les composants réutilisables) a été l'objectif premier du <a href="G%C3%A9nie_logiciel" title="Génie logiciel">génie logiciel</a>.
</p>
<div class="mw-heading mw-heading3"><h3 id="CORBA">CORBA</h3></div>
<p>L'OMG (Object Management Group) est un regroupement de spécialiste informatique depuis 1989. Actuellement il y a environ 850 acteurs de ce groupe (IBM, <a href="National_Aeronautics_and_Space_Administration" title="National Aeronautics and Space Administration">NASA</a>, LIFL, Alcatel, <abbr class="abbr" title="et cetera">etc.</abbr>). À travers ce regroupement, il y a un objet : faire émerger les standards pour l'intégration d'applications distribuées hétérogènes. L'élément clé de la vision de l'OMG est CORBA : un middleware orienté objet. <a href="Common_Object_Request_Broker_Architecture" title="Common Object Request Broker Architecture">CORBA</a> (Common Object Request Broker Architecture) est basé sur une architecture d'appel-réponse. Ce bus d'objets répartis offre un support d’exécution masquant les couches techniques d'un système réparti. De plus il prend en charge les communications entre les composants logiciels formant les applications réparties hétérogènes.
</p>
<div class="mw-heading mw-heading4"><h4 id="Modèle_objet_Client/Serveur"><span id="Mod.C3.A8le_objet_Client.2FServeur"></span>Modèle objet Client/Serveur</h4></div>
<p>Le bus CORBA propose un modèle orienté objet client/serveur d'abstraction et de coopération entre les applications réparties :
</p>
<ul><li>La composante d’abstraction : chaque application peut exporter certains de ses services sous la forme d’objets CORBA ;</li>
<li>La partie coopération : les interactions entre les applications sont alors matérialisées par des invocations à distance des méthodes des objets.</li></ul>
<p>Ce modèle d'objet intervient uniquement lors de l'utilisation d'un objet. On caractérise alors l'application implantant l'objet comme le serveur et l'application utilisant l'objet comme le client. Cependant il faut noter qu'une application peut être à la fois cliente et serveur.
</p><p>Sur le schéma précédent on voit différentes notions :
</p>
<ul><li>L'application cliente : Programme qui utilise les méthodes objets via le bus CORBA</li>
<li>La référence de l'objet : Structure qui désigne l'objet CORBA et permet de le localiser sur le bus.</li>
<li>L'interface de l'objet : Ce qui définit les opérations et attributs de l'objet CORBA (utilisation du langage OMG-IDL)</li>
<li>Le bus CORBA : Transfert les requêtes de l'application cliente vers l'objet</li>
<li>L'objet CORBA : Entité virtuelle gérée par le bus CORBA.</li>
<li>L'activation : Technique d'association d'un objet d'implantation à un objet CORBA</li>
<li>Le code d'implantation : Regroupement des traitements liés à l'implantation de l'objet CORBA</li>
<li>L'application serveur : Structure d'accueil des objets d'implantation et des exécutions des opérations</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Java_RMI">Java RMI</h3></div>
<p>Remote method invocation, plus connu sous l'acronyme RMI est une interface de programmation (API) pour le langage Java qui permet d'appeler des méthodes distantes, sur le principe des <a href="Object_request_broker" title="Object request broker">ORB</a>. L'utilisation de cette API nécessite l'emploi d'un registre RMI sur la machine distante hébergeant ces objets que l'on désire appeler au niveau duquel ils ont été enregistrés. Cette interface de programmation est très souvent utilisée en parallèle avec l'API d'annuaire JNDI ou encore avec la spécification de composants distribués transactionnels EJB du langage Java.
</p><p>Cette bibliothèque qui se trouve en standard dans Java J2SE, est une technologie qui permet la communication via le protocole HTTP (ou IIOP, depuis la version 1.3 du JDK) entre des objets Java éloignés physiquement les uns des autres, autrement dit s'exécutant sur des machines virtuelles java distinctes. RMI facilite le développement des applications distribuées en masquant au développeur la communication client / serveur.
</p><p>Cette bibliothèque entre en concurrence avec la norme CORBA maintenue par l'Object Management Group, et les produits qui la respectent, ou avec la technologie RPC dont l'un des acteurs est Microsoft.
</p>
<div class="mw-heading mw-heading3"><h3 id="Microsoft_COM/DCOM"><span id="Microsoft_COM.2FDCOM"></span>Microsoft COM/DCOM</h3></div>
<p>DCOM (Distributed <a href="Component_Object_Model" title="Component Object Model">Component Object Model</a>) est un ensemble de concepts Microsoft et d'interfaces de programmes dans lequel les objets de programme client peuvent demander des services à partir d'objets de programme serveur sur d'autres ordinateurs dans un réseau. DCOM est basé sur le "Component Object Model"(COM), qui fournit un ensemble d'interfaces permettant aux clients et aux serveurs de communiquer dans le même ordinateur (qui exécute <a href="Windows_95" title="Windows 95">Windows 95</a> ou une version ultérieure).
</p>
<div class="mw-heading mw-heading2"><h2 id="Notes_et_références"><span id="Notes_et_r.C3.A9f.C3.A9rences"></span>Notes et références</h2></div>
<div class="references-small decimal" style="column-width:30em;"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> John Footen et Joey Faust, <i><span class="lang-en" lang="en">The Service-Oriented Media Enterprise: SOA, BPM, and Web Services in Professional Media Systems</span></i>, <span class="lang-en" lang="en">Focal Press</span>, 2008, <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <span class="nowrap">9780240809779</span>)</small>, chapitre 4 <i><span class="lang-en" lang="en">The Definition of Middleware</span></i>.</span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> Daniel Serain et Iain Craig, <i>Middleware and enterprise application integration: the architecture of e-business solutions</i>, Springer - 2002, <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <span class="nowrap">9781852335700</span>)</small>, page 154</span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> Gunjan Samtani et Marcus Healey,<i>B2B integration: a practical guide to collaborative e-commerce</i>, <a href="Imperial_College_Press" title="Imperial College Press">Imperial College Press</a> - 2002, <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <span class="nowrap">9781860943263</span>)</small></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><a href="#cite_ref-4">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> Bill Blunden, <i>Message passing server internals</i>, McGraw-Hill Professional - 2003, <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <span class="nowrap">9780071416382</span>)</small></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><a href="#cite_ref-5">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> Gustavo Alonso, <i>Web services: concepts, architectures and applications</i>, Springer - 2004, <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <span class="nowrap">9783540440086</span>)</small>, page 55</span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><a href="#cite_ref-6">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> Qusay H. Mahmoud, <i>Middleware for communications</i>, John Wiley and Sons - 2004, <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <span class="nowrap">9780470862063</span>)</small>, page 54</span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><a href="#cite_ref-7">↑</a> </span><span class="reference-text"><span class="ouvrage"><span class="noarchive">« <a rel="nofollow" class="external text" href="http://publib.boulder.ibm.com/infocenter."><cite style="font-style:normal; color:var(--color-link-red, #d73333);">publib.boulder.ibm.com/infocen…</cite></a> »<sup class="">(<a rel="nofollow" class="external text" href="https://web.archive.org/web/*/http://publib.boulder.ibm.com/infocenter.">Archive.org</a> • <a rel="nofollow" class="external text" href="https://archive.wikiwix.com/cache/?url=http://publib.boulder.ibm.com/infocenter.">Wikiwix</a> • <a rel="nofollow" class="external text" href="https://archive.is/http://publib.boulder.ibm.com/infocenter.">Archive.is</a> • <a rel="nofollow" class="external text" href="https://webcache.googleusercontent.com/search?hl=fr&q=cache:http://publib.boulder.ibm.com/infocenter.">Google</a> • Que faire ?)</sup></span></span>.</span>
</li>
</ol>
</div>
<div class="mw-heading mw-heading2"><h2 id="Voir_aussi">Voir aussi</h2></div>
<style data-mw-deduplicate="TemplateStyles:r194021218">
/* start https://fr.wikipedia.org/ */
.mw-parser-output .autres-projets>.titre{text-align:center;margin:0.2em 0}.mw-parser-output .autres-projets>ul{margin:0;padding:0}.mw-parser-output .autres-projets>ul>li{list-style:none;margin:0.2em 0;text-indent:0;padding-left:24px;min-height:20px;text-align:left;display:block}.mw-parser-output .autres-projets>ul>li>a{font-style:italic}@media(max-width:720px){.mw-parser-output .autres-projets{float:none}}
/* end https://fr.wikipedia.org/ */
</style>
<div class="mw-heading mw-heading3"><h3 id="Bibliographie">Bibliographie</h3></div>
<ul><li>J.Aldrich, C.Chambers, and D.Notkin (2002) « <i>ArchJava : Connecting SoftwareArchitecture to Implementation</i> ». InProc. International Conference on SoftwareEngineering, pages 187–197. ACM Press</li>
<li>J.Aldrich, V.Sazawal, C.Chambers, and David Notkin (2003) « <i>LanguageSupport for Connector Abstractions</i> ». InProceedings 17th European Conferenceon Object-Oriented Programming (ECOOP)</li>
<li>R.Cerqueira, C.Cassino, and R.Ierusalimschy (1999) « Dynamic componentgluing across different componentware systems » ; Distributed Objects and Applications. Proceedings of the International Symposium on, pages 362–371,1999</li>
<li>A.Erbad, M.Blackstock, A.Friday, R.Lea, and J.Al-Muhtadi (2008), « <i>MA-GIC Broker : A Middleware Toolkit for Interactive Public Displays</i> ». InPER-COM’08 : Proceedings of the 2008 Sixth Annual IEEE International Conferenceon Pervasive Computing and Communications, pages 509–514, Washington, DC,USA, IEEE Computer Society.</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Articles_connexes">Articles connexes</h3></div>
<div style="column-width:18em;column-count:2;column-gap:1em;" class="colonnes">
<ul><li><a href="Interop%C3%A9rabilit%C3%A9" title="Interopérabilité">Interopérabilité</a></li>
<li><a href="Enterprise_Service_Bus" class="mw-redirect" title="Enterprise Service Bus">Enterprise Service Bus</a></li>
<li><a href="Architecture_orient%C3%A9e_services" title="Architecture orientée services">Architecture orientée services</a></li>
<li><a href="ODBC" class="mw-redirect" title="ODBC">ODBC</a></li>
<li><a href="Syst%C3%A8me_d'information" title="Système d'information">Système d'information</a></li></ul>
</div>
<div class="navbox-container" style="clear:both;">
</div>
<ul id="bandeau-portail" class="bandeau-portail"><li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail de l’informatique</span> </span></li> <li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail des logiciels</span> </span></li> </ul></div><!--htdig_noindex--><div><div class="zim-footer">
Cet article est issu de <a class="external text" title="Dernière modification le 2025-04-19" href="https://fr.wikipedia.org/wiki/?title=Middleware&oldid=224946988">Wikipédia</a>. Sauf mention contraire, le texte est disponible sous <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr">Creative Commons Attribution-Share Alike 4.0</a>. Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>